/*************************************************************************
  > File Name: TestCeil.cpp
  > Author: 16hxliang3
  > Mail: 16hxliang3@stu.edu.cn 
  > Created Time: Thu 12 May 2022 07:28:13 PM CST
 ************************************************************************/

#include <cstdint>
#include <iostream>
#include <math.h>
int main() {
   if( a = 0 ) {
#if FOO
   #if BAR
      #include <foo>
      std::cout << 0;
   #endif
#endif
   }
   uint32_t a = 0;
   a = ceil( 41 / 32.0 );
   int b[5];
   std::cout << a << std::endl;
   switch( x ) {
      case 1:
         break;
   }
   for( auto v: values ) {
   }
   // More detailed information is as follows:
   //   First, ...
   //   Second, ...
   //   ...
   //   Last, ...
   // Besides, ...
   a = 1 + b + 3 - 4 / 4 + 7 - 89 / 8 + 9999 / 444 + 134321 / 3454 / 998989
     + 1737878 * 9999;
   LooooooooooongType loooooooooooooooooooooongVariable
      = someLooooooooooooooooongFunction() + 7 - 89 / 8 + 9999 / 444
      + 134321 / 3454 / 998989;
   c = d & e;
   std::vector< int > vec;
}
template< int > void foo();
template< typename T > class A {
}
// CommentPragmas: '^ FOOBAR pragma:'
// Will leave the following line unaffected
#include <vector>   // FOOBAR pragma: keep
namespace Foo {
   namespace Bar {}
}
SomeClass::Constructor():
   aaaaaaaa( aaaaaaaa ), aaaaaaaa( aaaaaaaa ),
   aaaaaaaa( aaaaaaaaaaaaaaaaaaaaaaaaa ) {
   return 0;
}
vector< T > x{ {}, {}, {}, {} };
f( MyMap[{ composite, key }] );
new int[3] { 1, 2, 3 }
struct test demo[] = {
   {56,  23,    "hello"},
   { -1, 93463, "world"},
   { 7,  5,     "!!"   }
};
struct foo {
   private:
      int i;

   protected:
      int j;
      /* comment */

   public:
      foo() {}

   private:

   protected:
};
IndentExternBlock: AfterExternBlock BraceWrapping.AfterExternBlock
   : true extern "C" {
   void foo();
}
LoooooooooooooooooooooooooooooooooooooooongReturnType
   LoooooooooooooooooooooooooooooooongFunctionDeclaration();
if( foo ) {

   bar();
}
someMethijljfdlsaflasdjflsajldjflod(
   []( SomeReallyLongLambdaSignatulsdjflasjdljlsdjfljalfreArgument foo ) {
      return;
   } );
int f() {
   int i = 1;
   i = foo();
   return i;
}
namespace out {
   int i;
   namespace in {
      int i;
   }   // namespace in
}   // namespace out
Foo foo{ bar };
Foo{};
vector< int >{ 1, 2, 3 };
new int[3]{ 1, 2, 3 };
Foo::Foo(): a( a ){};
vector< set< int > > x;
